import {createPinia, defineStore} from 'pinia';

// 给pinia配置
const pinia = createPinia();
export default pinia
export const useMainStore = defineStore('main', {
    state: () => { // 推荐使用 完整类型推断的箭头函数
        return {  // 所有这些属性都将自动推断其类型
            count: 9,//测试
            isInit:false, //过渡页显示
            userInfo: uni.getStorageSync('userInfo') ? JSON.parse(uni.getStorageSync('userInfo')) : {},//存储用户信息
            userToken: uni.getStorageSync('token') || '',//存储用户token
	    userKey: uni.getStorageSync('userKey') || null,//存储用户token
        }
    },
    getters: {
        getUserInfo() {
            return this.userInfo
        },
        getToken() {
            return this.userToken
        },
		getUserKey() {
		    return this.userKey
		},
    },
    actions: {
        //过渡页显示
        setInit(val){
            this.isInit = val
        },
        //将用户token存储
        setUserToken(val) {
            // 写入缓存
            uni.setStorageSync('token', val)
            this.userToken = val
        },
        //将用户信息存储到状态中
        setUserInfo(user) {
            // 写入缓存，要json字符串化
            uni.setStorageSync('userInfo', JSON.stringify(user))
            this.userInfo = user
        },
		 //将用户信息存储到状态中
        setUserKey(data) {
            // 写入缓存，要json字符串化
            uni.setStorageSync('userKey', JSON.stringify(data))
            this.userKey = data
        },
        //清除用户信息
        clearUser() {
            // 清除缓存中的token
            uni.removeStorageSync('token')
            uni.removeStorageSync('userInfo')
			uni.removeStorageSync('userKey')
            this.userInfo = {}
            this.userToken = ''
			 this.userKey = {}
        },
    },
    persist: {
        enabled: true,//不写下面的strategies配置，则state中的变量全部持久化
    }
})
